package com.kyl.entity;

import com.kyl.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author WanJl
 * @version 1.0
 * @title
 * @description
 * @create 2024/12/4
 */

@Data
@NoArgsConstructor
@ApiModel(value = "用户实体类", description = "对应数据库中的用户表结构")
public class User extends BaseEntity {

    /**
     * 头像地址
     */
    @ApiModelProperty(value = "头像地址")
    private String avatar;


    /**
     * 数据状态（0正常 1停用）
     */
    @ApiModelProperty(value = "数据状态（0正常 1停用）")
    private String dataState;

    /**
     * 部门编号
     */
    @ApiModelProperty(value = "部门编号")
    private String deptNo;

    /**
     * 用户邮箱
     */
    @ApiModelProperty(value = "用户邮箱")
    private String email;

    /**
     * 是否删除
     */
    @ApiModelProperty(value = "是否删除")
    private Integer isDelete;

    /**
     * 是否是部门leader(0:否，1：是)
     */
    @ApiModelProperty(value = "是否是部门leader(0:否，1：是)")
    private Integer isLeader;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码")
    private String mobile;

    /**
     * 用户昵称
     */
    @ApiModelProperty(value = "用户昵称")
    private String nickName;

    /**
     * open_id标识
     */
    @ApiModelProperty(value = "open_id标识")
    private String openId;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    private String password;

    /**
     * 职位编号
     */
    @ApiModelProperty(value = "职位编号")
    private String postNo;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    private String realName;

    /**
     * 用户性别（0男 1女 2未知）
     */
    @ApiModelProperty(value = "用户性别（0男 1女 2未知）")
    private String sex;


    /**
     * 用户类型（0:系统用户,1:客户）
     */
    @ApiModelProperty(value = "用户类型（0:系统用户,1:客户）")
    private String userType;

    /**
     * 用户账号
     */
    @ApiModelProperty(value = "用户账号")
    private String username;



    @Builder
    public User(String username, String openId, String password, String userType, String avatar, String nickName, String email, String realName, String mobile, String sex, String dataState, String deptNo, String postNo, Integer isLeader) {
        this.username = username;
        this.openId = openId;
        this.password = password;
        this.userType = userType;
        this.avatar = avatar;
        this.nickName = nickName;
        this.email = email;
        this.realName = realName;
        this.mobile = mobile;
        this.sex = sex;
        this.dataState = dataState;
        this.deptNo = deptNo;
        this.postNo = postNo;
        this.isLeader = isLeader;
    }
}
